package cn.tedu.csmall.product.service;

import cn.tedu.csmall.product.pojo.dto.AlbumUpdateDTO;
import cn.tedu.csmall.product.pojo.dto.AttributeAddNewDTO;
import cn.tedu.csmall.product.pojo.dto.AttributeUpdateDTO;
import cn.tedu.csmall.product.pojo.vo.AttributeListVO;
import cn.tedu.csmall.product.pojo.vo.AttributeStandardVO;

import java.util.List;

/**
 * 处理属性数据相关业务的接口
 *
 * @author TanJiawei
 * @version 0.0.1
 */

public interface IAttributeService {
    /**
     * 处理添加属性业务接口
     * @param dto       要添加的属性对象
     * @return          返回添加状态
     */
    void addNew(AttributeAddNewDTO dto);

    /**
     * 根据id删除属性
     * @param id
     */
    void deleteById(Long id);

    /**
     * 根据id修改属性详情
     * @param dto
     */
    void updateById(AttributeUpdateDTO dto);

    /**
     * 查询属性列表
     * @return
     */
    List<AttributeListVO> list();

    /**
     * 根据属性模板id查询属性列表
     * @return
     */
    List<AttributeListVO> listAttributeByTemplateId(Long templateId);

    /**
     * 根据id查询属性详情
     * @param id
     * @return
     */
    AttributeStandardVO getStandardById(Long id);

    /**
     * 重建属性缓存
     */
    void rebuildCache();
}
